package com.es.designmode.composite;

/**
 * 为组合中的对象声明接口
 *
 * @author Will
 */
public abstract class Component {

    public String getName() {
        return name;
    }

    private String name;

    public Component(String name) {
        this.name = name;
    }

    // 通常都用 add 和 remove 方法来提供增加或移除树叶或树枝的功能

    /**
     * 添加树叶
     *
     * @param c
     */
    public abstract void add(Component c);

    /**
     * 移除树叶
     *
     * @param c
     */
    public abstract void remove(Component c);

    /**
     * 展示
     *
     * @param depth
     */
    public abstract void display(int depth);
}
